Identifying and extracting fault blocks in one or more bodies representing a geological structure

ABSTRACT

Systems and methods for identifying and extracting fault blocks in one or more bodies representing a geological structure by performing a fault block analysis on the bodies to extract fault blocks without seams or intrusions for simple identification.

CROSS-REFERENCE TO RELATED APPLICATIONS

The priority of U.S. Provisional Patent Application No. 61/866,927,filed Aug. 16, 2013, is hereby claimed and the specification thereof isincorporated herein by reference.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

Not applicable.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to systems and methods foridentifying and extracting fault blocks in one or more bodiesrepresenting a geological structure. More particularly, the presentdisclosure relates to identifying and extracting fault blocks in one ormore bodies representing a geological structure by performing a faultblock analysis on the bodies to extract fault blocks without seams orintrusions for simple identification.

BACKGROUND

Compartments are on-the-fly auto-detected sealed spaces in the frameworkbound by framework objects (surfaces, faults, geoshells, fluid contacts)and/or the framework limits. Compartments provide visual control forhighly accurate volumetric calculations; they provide thickness gridsand visualize complex geologic structures. Conventional compartmentstechnology started modeling sealed spaces (volume-based modeling), butdoes not provide the level of functionality and updatability such as thegeologic grouping of compartments and associated tools. In addition, theframework to geocellular model workflow is very linear and static andmost capabilities are inherent to the geocellular models and not to theframework.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described below with references to theaccompanying drawings in which like elements are referenced with likereference numerals, and in which:

FIG. 1 is a graphical user interface illustrating various differentcompartments (stratigraphic layer, fault block, fluid layer, combined),user specified properties and inherent properties in an exemplary tableloaded in step 2104 of FIG. 21.

FIGS. 2A-2B are a flow diagram illustrating one embodiment of a method200 for implementing the present disclosure.

FIG. 3 is a flow diagram illustrating one embodiment of a method 300 forimplementing step 206 in FIG. 2.

FIGS. 4A-4B are a flow diagram illustrating one embodiment of a method400 for implementing step 208 in FIG. 2.

FIG. 5 is a schematic diagram illustrating the intrusion of a geoshellbody scanned in step 704 of FIG. 7.

FIG. 6 is a display illustrating an exemplary three-dimensional geoshellvolume compartment.

FIG. 7 is a flow diagram illustrating one embodiment of a method 700 forimplementing step 212 in FIG. 2.

FIG. 8 is a schematic diagram illustrating a group of cached bodies fora stratigraphic layer in relation to a geoshell body returned in step1022 of FIG. 10.

FIG. 9 is a display illustrating an exemplary three-dimensionalstratigraphic layer compartment.

FIGS. 10A-10B are a flow diagram illustrating one embodiment of a method1000 for implementing step 214 in FIG. 2.

FIG. 11 is a schematic diagram illustrating three groups of cachedbodies for three respective fault blocks in relation to a geoshell bodyreturned in step 1322 of FIG. 13.

FIG. 12 is a display illustrating an exemplary three-dimensional faultblock compartment.

FIGS. 13A-13B are a flow diagram illustrating one embodiment of a method1300 for implementing step 218 in FIG. 2.

FIG. 14 is a schematic diagram illustrating two groups of cached bodiesfor two respective fluid layers in relation to a geoshell body returnedin step 2024 of FIG. 20.

FIG. 15 is a display illustrating an exemplary three-dimensional fluidlayer compartment.

FIG. 16 is a display illustrating multiple groups of cached bodies forrespective fluid reservoirs returned in step 2038 of FIG. 20.

FIG. 17 is another display illustrating multiple groups of cached bodiesfor respective fluid reservoirs returned in step 2038 of FIG. 20.

FIG. 18 is another display illustrating multiple groups of cached bodiesfor respective fluid reservoirs returned in step 2038 of FIG. 20.

FIG. 19 is another display illustrating multiple groups of cached bodiesfor respective fluid reservoirs returned in step 2038 of FIG. 20.

FIGS. 20A-20D are a flow diagram illustrating one embodiment of a method2000 for implementing step 224 in FIG. 2.

FIGS. 21A-21C are a flow diagram illustrating one embodiment of a method2100 for implementing step 238 in FIG. 2.

FIG. 22 is a Venn Diagram illustrating the various combinations from thegroup of union, intersect some and intersect all.

FIGS. 23A-23B are a flow diagram illustrating one embodiment of a method2300 for implementing step 240 in FIG. 2.

FIG. 24 is a flow diagram illustrating one embodiment of a method 2400for implementing step 244 in FIG. 2.

FIG. 25 is a block diagram illustrating one embodiment of a computersystem for implementing the present disclosure.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present disclosure overcomes one or more deficiencies in the priorart by providing systems and methods for identifying and extractingfault blocks in one or more bodies representing a geological structureby performing a fault block analysis on the bodies to extract faultblocks without seams or intrusions for simple identification.

In one embodiment, the present disclosure includes, which comprises: a)loading a plurality of bodies, wherein each body includes a side patch,a center of mass and a volume; b) assigning a fault flag to eachrespective body, wherein each fault flag is designated as empty; c)selecting a fault flag that is assigned to one of the plurality ofbodies with a side patch that is a fault; d) converting the selectedfault flag from empty to a fault representing a fault-flagged body; e)selecting each one of the plurality of bodies that is below thefault-flagged body; f) identifying each body selected below thefault-flagged body that is a continuation of the fault-flagged bodyusing a computer processor; g) repeating steps c)-f) for each fault flagassigned to one of the plurality of bodies with a side patch that is afault; and h) separating each fault-flagged body and each bodyidentified as a respective continuation of the fault-flagged body fromthe plurality of bodies into a group of bodies.

In another embodiment, the present disclosure includes a non-transitoryprogram carrier device tangibly carrying computer-executableinstructions for identifying and extracting fault blocks in one or morebodies representing a geological structure, the instructions beingexecutable to implement: a) loading a plurality of bodies, wherein eachbody includes a side patch, a center of mass and a volume; b) assigninga fault flag to each respective body, wherein each fault flag isdesignated as empty; c) selecting a fault flag that is assigned to oneof the plurality of bodies with a side patch that is a fault; d)converting the selected fault flag from empty to a fault representing afault-flagged body; e) selecting each one of the plurality of bodiesthat is below the fault-flagged body; f) identifying each body selectedbelow the fault-flagged body that is a continuation of the fault-flaggedbody; g) repeating steps c)-f) for each fault flag assigned to one ofthe plurality of bodies with a side patch that is a fault; and h)separating each fault-flagged body and each body identified as arespective continuation of the fault-flagged body from the plurality ofbodies into a group of bodies.

In yet another embodiment, the present disclosure includes anon-transitory program carrier device tangibly carryingcomputer-executable instructions for identifying and extracting faultblocks in one or more bodies representing a geological structure, theinstructions being executable to implement: a) loading a plurality ofbodies, wherein each body includes a side patch; b) assigning a faultflag to each respective body, wherein each fault flag is designated asempty; c)selecting a fault flag that is assigned to one of the pluralityof bodies with a side patch that is a fault; d) converting the selectedfault flag from empty to a fault representing a fault-flagged body; e)selecting each one of the plurality of bodies that is below thefault-flagged body; f) identifying each body selected below thefault-flagged body that is a continuation of the fault-flagged body; g)repeating steps c)-f) for each fault flag assigned to one of theplurality of bodies with a side patch that is a fault; and h) separatingeach fault-flagged body and each body identified as a respectivecontinuation of the fault-flagged body from the plurality of bodies intoa group of bodies, wherein each body in each separated group of bodiesrepresents at least a portion of a fault block.

The subject matter of the present disclosure is described withspecificity; however, the description itself is not intended to limitthe scope of the disclosure. The subject matter thus, might also beembodied in other ways, to include different steps or combinations ofsteps similar to the ones described herein, in conjunction with otherpresent or future technologies. Moreover, although the term “step” maybe used herein to describe different elements of methods employed, theterm should not be interpreted as implying any particular order among orbetween various steps herein disclosed unless otherwise expresslylimited by the description to a particular order. While the presentdisclosure may be applied in the oil and gas industry, it is not limitedthereto and may also be applied in other industries to achieve similarresults.

Method Description

The present disclosure describes compartment geogrouping, which modelsnot only the framework objects but also the sealed spaces (compartments)in between. Compartment geogrouping automatically groups compartmentsinto different categories without user interaction. When compartmentsare auto-detected, they are immediately grouped into stratigraphiclayers, fault blocks, fluid layers and geoshells. Fluid layers areunique in that they have fluid layer type logic and support for blockingfluid flow across faults, surfaces and/or fluid contacts. In addition,custom reservoirs can be generated by merging or intersecting othercompartments. Filter tools help identify the compartment(s) of interest.Compartment geogrouping advances the basic compartment technology. Itoffers geologically coherent combinations of sealed spaces, which areautomatically detected and updated when bounding objects change. Thissignificantly facilitates modeling complex frameworks as well as servingas basis for highly accurate property and volumetric analysis.

This disclosure includes features that support complex geologicalworkflows such as intrusion isolation, seamless stratigraphic layer andfault block detection, advanced fluid contact interpretation withintegrated fluid layer detection, pre-defined custom reservoirgeneration and management, and filter tools for reservoir selection.This disclosure also includes dynamic and iterative updatability tooptimize performance and make the tools more accessible. This generatesa near real-time three-dimensional sealed model with inherently higheraccuracy than cellular or subsampled alternatives. When compartments areauto-detected, they are immediately grouped into stratigraphic layers,fault blocks, fluid layers and geoshell volumes. The geogrouping enginekeeps track of each framework object by referencing its sealing segmentsas individual patches. Each compartment can therefore, be assembled fromits complete or a partial collection of its patches, This allowsdifferent geogrouping types to be assembled from different patchcollections so interior seams (internal boundaries) or non-sealing edgescan vanish from the final compartment. It also allows compartments to bemerged or split automatically into overlapping regions. Geogroupingtechnology thus, can automatically assemble all of the individualpatches into geological units on the fly.

Referring now to FIGS. 2A-2B, a flow diagram of one embodiment of amethod 200 for implementing the present disclosure is illustrated.

In step 202, current data comprising a plurality of source data pointsin a common coordinate system with predefined units is loaded into aconventional 3D modeling engine, operating in a system with predefinedunits, from a database.

In step 204, the method 200 determines if the current data loaded instep 202 includes non-standard data. If the current data does notinclude non-standard data, then the method 200 proceeds to step 208.Otherwise, the method 200 proceeds to step 206.

In step 206, generic geology adaptation is performed on the current datafrom step 202 to transform it into a recognizable geological structuresuch as, for example, a gridded surface. One embodiment of a method forperforming this step is described further in reference to FIG. 3.

In step 208, Volume of Interest (VOI) based model sealing is performedusing the current data from step 202 or the geological structure fromstep 206 to extrapolate the current data or the geological structureagainst the VOI to produce a cached body. In this manner arbitraryextents may be used within the model. Each cached body includes a toppatch, a side patch and bottom patch, (each of which may be associatedwith a surface, a fault or a fluid contact), a center of mass and avolume. One embodiment of a method for performing this step is describedfurther in reference to FIGS. 4A-4B.

In step 210, the method 200 determines if geoshells are present in thecached bodies from step 208. If geoshells are not present, then themethod 200 proceeds to step 214. Otherwise, the method 200 proceeds tostep 212.

In step 212, an intrusion analysis is performed on the cached bodiesfrom step 208 to isolate and extract any intrusive bodies. Oneembodiment of a method for performing this step is described further inreference to FIG. 7.

In step 214, a stratigraphic analysis is performed on the cached bodiesfrom step 208 or step 212 to extract stratigraphic layers from thecached bodies. One embodiment of a method for performing this step isdescribed further in reference to FIGS. 10A-10B.

In step 216, the method 200 determines if faults are present in thecached bodies from step 214. If faults are not present, then the method200 proceeds to step 220. Otherwise, the method 200 proceeds to step218.

In step 218, a fault block analysis is performed on the cached bodiesfrom step 208 to extract fault blocks from the cached bodies. Oneembodiment of a method for performing this step is described further inreference to FIGS. 13A-13B.

In step 220, the method 200 determines if fluids are present in thecached bodies from step 214 or step 218. If fluids are not present, thenthe method 200 proceeds to step 238. Otherwise, the method 200 proceedsto step 224.

In step 224, a fluid fill analysis is performed on the group of cachedbodies from step 214 and/or step 218 using advanced fluid fill analysisalgorithms to extract fluid reservoirs from the geological structurerepresented by the group of cached bodies. One embodiment of a methodfor performing this step is described further in reference to FIGS.20A-20D.

In step 238, property matching is performed on the group of cachedbodies from step 214, step 218 and/or step 224 to convert each cachedbody to a respective compartment represented by a triangulated mesh ofthe bounding cached body with properties such as color and lithology.One embodiment of a method for performing this step is described furtherin reference to FIGS. 21A-21C.

In step 240, custom reservoir generation is performed on eachcompartment from step 238 to generate one or more combined compartments.This allows intersection and union algorithms to sit on top of othercompartments, which allows combined compartments to be generatedautomatically. One embodiment of a method for performing this step isdescribed further in reference to FIGS. 23A-23B.

In step 242, the compartments from step 238 and/or the combinedcompartments from step 240 may be displayed. In FIGS. 6, 9, 12 and 15,various exemplary displays illustrate the different compartments thatmay be displayed. In FIG. 6, the display 600 illustrates an exemplarythree-dimensional geoshell volume compartment. In FIG. 9, the display900 illustrates an exemplary three-dimensional stratigraphic layercompartment. In FIG. 12, the display 1200 illustrates an exemplarythree-dimensional fault block compartment. In FIG. 15, the display 1500illustrates an exemplary three-dimensional fluid layer compartment.

In step 244, one or more dynamic interactions are performed on thecurrent data loaded in step 202, the predefined polygon AOI and thepredefined minimum/maximum depths from the VOI based model sealingperformed in step 208 and/or the fluid contact flag and the sealingstate from the fluid fill analysis performed in step 224 to dynamicallyupdate the compartments from step 238 and/or the combined compartmentsfrom step 240. One embodiment of a method for performing this step isdescribed further in reference to FIG. 24.

Generic Geology Adaptation

Referring now to FIG. 3, a flow diagram of one embodiment of a method300 for implementing step 206 in FIG. 2 is illustrated. The method 300performs a generic geology adaptation on the current data from step 202to transform it into a recognizable geological structure such as, forexample, a gridded surface. When combined with the fluid fill analysisfrom step 224, gas and oil filled reservoirs may be interpreted with ahigher degree of accuracy. When combined with the fluid fill analysisfrom step 224 and the custom reservoir generation from step 240, thedifferences between measurement techniques, min and max cases, or fluidlevel variation through time may be evaluated. Typically, fluid contactscan only be represented as a flat plane or a predefined grid. The method300, however, allows any current data source such as, for example, handdigitized polylines to be transformed into fluid contacts in the 3Dmodeling engine as one example of a recognizable geological structure.

In step 302, the current plurality of source data points loaded in step202 is mapped to a common point cloud in the coordinate system of thecurrent plurality of source data points using the 3D modeling engine andtechniques well known in the art. In this manner, a common pointcollection is mapped to a common point cloud.

In step 304, a sorted point cloud collection with a footprintrepresenting a boundary is created by sorting points in the common pointcloud from step 302 according to a distance of each of the currentplurality of source data points from an origin, first by a length of az-vector in the z-axis and then by a length of an x-y vector across thex and y axes, using techniques well known in the art.

In step 308, a new point cloud is created by reducing the footprint ofthe sorted point cloud collection created in step 304 using the 3Dmodeling engine and techniques well known in the art.

In step 310, units for points in the new point cloud from step 308 aretranslated into the predefined units used by the system in which the 3Dmodeling engine operates using techniques well known in the art.

In step 312, a recognizable geological structure is generated such as,for example, a gridded surface by gridding the points in the translatednew point cloud from step 310 using the 3D modeling engine andtechniques well known in the art. Each geological structure is returnedto step 206 in FIG. 2.

VOI Based Model Sealing

Referring now to FIGS. 4A-4B, a flow diagram of one embodiment of amethod 400 for implementing step 208 in FIG. 2 is illustrated. Themethod 400 performs Volume of Interest (VOI) based model sealing usingthe current data from step 202 or the geological structure from step 206to extrapolate the current data or the geological structure against theVOI to produce a cached body. In this manner, arbitrary extents may beused within the model that are different than the extents of thestructural framework. Thus, the model may be used to restrict thecompartment generation to a desired trap when working in a trap within alarger basin. The method 400 provides a performance improvement and avarying level of resolution. Further, the model generated by method 400can also be extended vertically to allow deeper estimates. Typically, amodel is always generated based on the hulled extents of all surfacesand an internal padding value. The method 400, however, uses awell-known algorithm for sealed model constraints to specify a fullvolume of interest or automatically calculate a smarter default for anyunspecified information.

In step 402, the method 400 determines if there is a predefined polygonarea of interest (AOI). If there is a predefined polygon AOI, then themethod 400 proceeds to step 406. Otherwise, the method 400 proceeds tostep 404.

In step 404, a polygon AOI is detected from hulled surfaces usingtechniques well known in the art.

In step 406, a polygon AOI is set in the 3D modeling engine using apredefined polygon AOI or the polygon AOI detected in step 404.

In step 408, the method 400 determines if there are any predefinedminimum/maximum depths of surfaces and/or faults. If there arepredefined minimum/maximum depths of surfaces and/or faults, then themethod 400 proceeds to step 412. Otherwise, the method 400 proceeds tostep 410.

In step 410, the minimum/maximum depths of surfaces/faults are detected.The minimum/maximum depths are detected by direct accumulation ofmodeled surface and fault extents. Modeled objects are queried in a loopand the minimum/maximum depths are stored. In this manner, the uppermost and lower most compartments will properly seal.

In step 412, minimum/maximum depths of the surfaces/faults are set inthe 3D modeling engine using predefined minimum/maximum depths ofsurfaces/faults or the minimum/maximum depths of surfaces and/or faultsdetected in step 410.

In step 414, topology patches are extracted from the 3D modeling engineusing the polygon AOI set in step 406, the minimum/maximum depths set instep 412 and techniques well known in the art. Each topology patchrepresents a triangulated mesh patch.

In step 416, the topology patches extracted in step 414 are extrapolatedor trimmed using the current data from step 202 or the geologicalstructure from step 206, and techniques well known in the art. If apatch is smaller than the polygon AOI, then conventional extrapolationis performed with zero dip. In this step, however, an average dip isused near the point of extrapolation providing a result with moreconsistency in parallel bedding. In cases where the patch is smaller,the triangulated mesh may be trimmed to the polygon AOI using techniqueswell known in the art.

In step 418, the extrapolated or trimmed patches from step 416 aresealed and cleaned using techniques well known in the art. In thismanner, each extrapolated or trimmed patch is sealed against the otherextrapolated or trimmed patches and any overlap is trimmed to thebounding edge.

In step 420, each sealed patch from step 418 is cached by body. In otherwords, each sealed patch is grouped as a solid body with theextrapolated or trimmed patches from step 416. Each cached body includesa center of mass and volume. Each patch contains a symbolic link back tothe bounding topology structure, which allows query by structure. Thestructure also allows navigation by top, side, or bottom structurequery, i.e. what body is below. Each cached body is returned to step 208in FIG. 2.

Intrusion Analysis

Referring now to FIG. 7, a flow diagram of one embodiment of a method700 for implementing step 212 in FIG. 2 is illustrated. The method 700performs an intrusion analysis on the cached bodies from step 208 toisolate and extract any intrusive bodies (e.g. geoshells). Geoshells aredata objects used to represent uncharacteristic complex geometries suchas salt bodies. Geoshells are separated as a compartment group calledgeoshell volumes, which are automatically subtracted from volumetriccalculations of stratigraphic layers, fault blocks, and fluid layersbecause they typically represent different properties from thesurrounding rock. The method 700 may be performed immediately after eachsealed patch is cached by body in step 208. No additional access to thetopology engine is required from this point forward. In conventionalapplications, all intrusions are seamed combinations of stratigraphiclayers that require manual disassembly and reassembly. The method 700,however, automatically extracts and groups intrusions without seams.

In step 704, each cached body from step 208 is scanned for isolatedgeoshell bodies. In this manner, the bodies will be queried for anyobjects that contain an intrusion (geoshell) and will identify each bodythat contains only an intrusion. Since a geoshell represents anintrusion, it will inherently not have seams from other structures.There could, however, still be multiple patches and internal seams fromthe same intrusion or other intrusions. In FIG. 5, a schematic diagram500 illustrates the intrusion of a geoshell body 502.

In step 706, matched patches are grouped together in an intermediateobject for the cached bodies from step 208 that contain an intrusionidentified in step 704.

In step 708, shared internal patches are removed from each group ofmatched patches from step 706. All shared internal patches (e.g.duplicated or common but not an external edge) are removed from thegroup of matched patches using techniques well known in the art.

In step 710, each group of matched patches remaining after step 708 iscached as a single group.

In step 712, the isolated geoshell bodies scanned in step 704 areremoved from each group of matched patches in step 710. Because anintrusion is not part of the surrounding stratigraphy, the isolatedgeoshell bodies are removed from each group of matched patches. Thisensures no other geological analysis will process them.

In step 714, a compartment is generated by linking each group of matchedpatches from step 712 to a respective compartment that is cached as arespective body. Each compartment includes a center of mass and avolume. Each cached body is returned to step 212 in FIG. 2.

Stratigraphic Analysis

Referring now to FIGS. 10A-10B, a flow diagram of one embodiment of amethod 1000 for implementing step 214 in FIG. 2 is illustrated. Themethod 1000 performs a stratigraphic analysis on the cached bodies fromstep 208 or step 212 to extract stratigraphic layers from the cachedbodies. In case of surfaces with different areal extents, thecompartment boundaries are extrapolated to the extents of the largestsurface. A stratigraphic layer is always created above the topmostsurface and below the bottommost surface, which represent arbitraryextensions into unknown rock layers. Stratigraphic layers automaticallyadjust to changes of the surface sources (e.g. horizons, picks) andchanges to the framework model (e.g. surface AOI, algorithms etc.). Inconventional applications, all stratigraphic layers are seamed ofseveral bodies sorted by all bounding structure names and areauto-grouped in a system that creates challenges to recognition. Themethod 1000, however, automatically extracts stratigraphic layers andgroups them without seams or intrusions for simple identification.

In step 1002, each cached body from step 208 or step 212 is loaded.Thus, each cached body includes a top patch, a center of mass and avolume.

In step 1004, a surface flag is assigned to each respective one of thecached bodies loaded in step 1002. Each surface flag is designated orset to empty.

In step 1006, a surface flag is selected from step 1004 that is assignedto one of the cached bodies loaded in 1002 with a top patch that is asurface.

In step 1012, the surface flag selected in step 1006 is converted fromempty to a top-surface representing a top-surface flagged body.

In step 1014, one of the cached bodies loaded in step 1002 that is belowthe top-surface flagged body from step 1012 is selected.

In step 1016, the cached body selected in step 1014 is identified todetermine if it is a continuation of the top-surface flagged body fromstep 1012.

In step 1018, the method 1000 determines if there are any bodies in thecached bodies loaded in step 1002 that are below the top-surface flaggedbody from step 1012. If there are bodies in the cached bodies loaded instep 1002 that are below the top-surface flagged body from step 1012,then the method 1000 returns to step 1014. Otherwise, the method 1000proceeds to step 1020.

In step 1020, the method 1000 determines if there are any remainingsurface flags from step 1004 that are assigned to one of the cachedbodies loaded in step 1002 with a top patch that is a surface and asurface flag that has not been converted from empty to a top surfacerepresenting a top-surface flagged body. If there are any surface flagsfrom step 1004 that are assigned to one of the cached bodies loaded instep 1002 with a top patch that is a surface and a surface flag that hasnot been converted from empty to a top surface representing atop-surface flagged body, then the method 1000 returns to step 1006.Otherwise, the method 1000 proceeds to step 1022.

In step 1022, each top-surface flagged body from step 1012 and eachrespective body identified in step 1016 as a continuation of thetop-surface flagged body from step 1012 are separated into a group ofcached bodies. The group of cached bodies is returned to step 214 inFIG. 2. In FIG. 8, a schematic diagram 800 illustrates a group of cachedbodies for a stratigraphic layer 802 in relation to the geoshell body502 in FIG. 5.

Fault Block Analysis

Referring now to FIGS. 13A-13B, a flow diagram of one embodiment of amethod 1300 for implementing step 218 in FIG. 2 is illustrated. Themethod 1300 performs a fault block analysis on the cached bodies fromstep 208 or step 212 to extract fault blocks from the cached bodies. Inmany models, surfaces may be much larger than faults. Faults can beextrapolated using fault networking and a smaller compartmentattribute-of-interest polygon can be specified to ensure faults can sealenough of the solid model to properly detect fault blocks. Fault blocksautomatically adjust to changes of the fault sources (e.g. seismicfaults, fault picks) and changes to the framework model (e.g. faultnetworking, fault sealing). In conventional applications, fault blockscannot be generated due to the limitations resolved byvolume-of-interest model sealing. The method 1300, however, enablesfault blocks to be automatically extracted and grouped without seams.The faults may be structurally sealing and completely isolate a 3D spacewithin two surfaces in order to be extracted. The resulting collectionof individual compartments becomes a fault block. Geoshell volumes areremoved against the fault blocks for the purpose of volumetriccalculations.

In step 1302, the cached bodies from step 208 or step 212 are loaded.Thus, each cached body includes a side patch, a center of mass and avolume.

In step 1304, a fault flag is assigned to each respective one of thecached bodies loaded in step 1302. Each fault flag is designated or setto empty.

In step 1306, a fault flag is selected from step 1304 that is assignedto one of the cached bodies loaded in 1302 with a top patch that is afault.

In step 1312, the fault flag selected in step 1306 is converted fromempty to a fault representing a fault-flagged body.

In step 1314, one of the cached bodies loaded in step 1302 that is belowthe fault-flagged body from step 1312 is selected.

In step 1316, the cached body selected in step 1314 is identified todetermine if it is a continuation of the fault-flagged body from step1312.

In step 1318, the method 1300 determines if there are any bodies in thecached bodies loaded in step 1302 that are below the fault-flagged bodyfrom step 1312. If there are bodies in the cached bodies loaded in step1302 that are below the fault-flagged body from step 1312, then themethod 1300 returns to step 1314. Otherwise, the method 1300 proceeds tostep 1320.

In step 1320, the method 1300 determines if there are any remainingfault flags from step 1304 that are assigned to one of the cached bodiesloaded in step 1302 with a top patch that is a fault and a fault flagthat has not been converted from empty to a fault representing afault-flagged body. If there are any fault flags from step 1304 that areassigned to one of the cached bodies loaded in step 1302 with a toppatch that is a fault and a fault flag that has not been converted fromempty to a fault representing a fault-flagged body, then the method 1300returns to step 1306. Otherwise, the method 1300 proceeds to step 1322.

In step 1322, each fault-flagged body from step 1312 and each respectivebody identified in step 1316 as a continuation of the fault-flagged bodyfrom step 1312 are separated into a group of cached bodies. The group ofcached bodies is returned to step 218 in FIG. 2. In FIG. 11, a schematicdiagram 1100 illustrates three groups of cached bodies for threerespective fault blocks 1104, 1106, and 1008 in relation to the geoshellbody 502 in FIG. 5.

Fluid Fill Analysis

Referring now to FIGS. 20A-20D, a flow diagram of one embodiment of amethod 2000 for implementing step 224 in FIG. 2 is illustrated. Themethod 2000 performs a fluid fill analysis on the group of cached bodiesfrom step 214 and/or step 218 using advanced fluid fill analysisalgorithms to extract fluid reservoirs from the geological structurerepresented by the cached bodies, Fluid Layers are created between fluidcontacts and other fluid contacts or framework surfaces. Fluid layersare a particular compartment type defined by a fluid property such asoil, gas, water or a generic fluid. They may also be subdivided bysealing faults. In conventional applications, fluid compartments aremanually grouped by individually turning them on in a view and thendragging and dropping them into a new grouping. This creates a slow,frustrating, seamed grouping with no fluid properties. The method 2000,however, enables fluid layers to be automatically detected, filled, andgrouped by fluid type.

In step 2004, the group of cached bodies from step 214 and/or step 218is loaded. Thus, each cached body in either group includes a top patch,a center of mass and a volume.

In step 2008, any cached bodies in the group of cached bodies loaded instep 2004 that are duplicated are removed.

In step 2010, a fluid contact flag is assigned to each respective one ofthe cached bodies remaining after step 2008. Each fluid contact flag isdesignated or set to empty.

In step 2012, a fluid contact flag is selected from step 2010 that isassigned to one of the cached bodies remaining after step 2008 with atop-patch that is a fluid contact.

In step 2014, the fluid contact flag selected in step 2012 is convertedfrom empty to a fluid contact representing a top-fluid contact flaggedbody.

In step 2016, one of the cached bodies remaining after step 2008 that isin the same fault block or stratigraphic layer as the top-fluid contactflagged body from step 2014 is selected.

In step 2018, the cached body selected in step 2016 is identified todetermine if it is a continuation of the top-fluid contact flagged bodyfrom step 2014.

In step 2020, the method 2000 determines if there are any bodies in thecached bodies remaining after step 2008 that are in the same fault blockor stratigraphic layer as the top-fluid contact flagged body from step2014. If there are bodies in the cached bodies remaining after step 2008that are in the same fault block or stratigraphic layer as the top-fluidcontact flagged body from step 2014, then the method 2000 returns tostep 2016. Otherwise, the method 2000 proceeds to step 2022.

In step 2022, the method 2000 determines if there are any remainingfluid contact flags from step 2010 that are assigned to one of thecached bodies remaining after step 2008 with a top-patch that is a fluidcontact and a fluid contact flag that has not been converted from emptyto a fluid contact representing a top-fluid contact flagged body. Ifthere are any fluid contact flags from step 2010 that are assigned toone of the cached bodies remaining after step 2008 with a top-patch thatis a fluid contact and a fluid contact flag that has not been convertedfrom empty to a fluid contact representing a top-fluid contact flaggedbody, then the method 2000 returns to step 2012. Otherwise, the method2000 proceeds to step 2024.

In step 2024, each top-fluid contact flagged body from step 2014 andeach respective body identified in step 2018 as a continuation of thetop-fluid contact flagged body from step 2014 are separated into a groupof cached bodies. In FIG. 14, a schematic diagram 1400 illustrates twogroups of cached bodies for respective fluid layers 1404 and 1406 inrelation to the geoshell body 502 in FIG. 5.

In step 2026, a reservoir flag is assigned to each respective one of thebodies in the group of cached bodies from step 2024. Each reservoir flagis designated or set to empty.

In step 2028, a reservoir flag is selected from step 2026 that isassigned to one of the bodies in the group of cached bodies from step2024.

In step 2030, the reservoir flag selected in step 2028 is converted fromempty to a fluid type based on the fluid contact flag from step 2010 anda unique identifier (e.g. oil 17) representing a fluid-reservoir flaggedbody.

In step 2032, a body in the group of cached bodies from step 2024 thathas the same fluid contact as the fluid-reservoir flagged body from step2030 is selected.

In step 2034, the method 2000 determines if there is a shared patchbetween the body assigned to the reservoir flag selected in step 2028and the body selected in step 2032 that seals against fluid flow usingthe client interface and/or the video interface described in referenceto FIG. 25. If there is not a shared patch between the body assigned tothe reservoir flag selected in step 2028 and the body selected in step2032 that seals against fluid flow, then the method 2000 returns to step2032. Otherwise, the method 2000 proceeds to step 2035.

In step 2035, the body selected in step 2032 is identified to determineif it is a continuation of the fluid-reservoir flagged body from step2030.

In step 2036, the method 2000 determines if there are any remainingreservoir flags from step 2026 that are assigned to one of the bodies inthe group of cached bodies from step 2024 that have not been convertedfrom empty to a fluid type and a unique identifier representing afluid-reservoir flagged body. If there are any reservoir flags from step2026 that are assigned to one of the bodies in the group of cachedbodies from step 2024 that have not been converted from empty to a fluidtype and a unique identifier representing a fluid-reservoir flaggedbody, then the method 2000 returns to step 2028. Otherwise, the methodproceeds to step 2038.

In step 2038, each fluid-reservoir flagged body from step 2030 and eachrespective body identified in step 2035 as a continuation of thefluid-reservoir flagged body from step 2030 are separated into a groupof cached bodies. The group of cached bodies is returned to step 224 inFIG. 2. In FIGS. 16-19, various exemplary displays 1600, 1700, 1800 and1900 illustrate multiple groups of cached bodies for respective fluidreservoirs with different sealing states.

Property Matching

Referring now to FIGS. 21A-21C, a flow diagram of one embodiment of amethod 2100 for implementing step 238 in FIG. 2 is illustrated. Themethod 2100 performs property matching on the group of cached bodiesfrom step 214, step 218 and/or step 224 to convert each cached body to arespective compartment represented by a triangulated mesh of thebounding cached body with properties such as color and lithology. Thisfacilitates finding specific compartments when a large number ofcompartments are present. One or more boundary objects such as surfaces,faults, fluid contacts and geoshells may be selected and allcompartments that share those objects as boundaries are identified.Multiple selections mean that any of the selected boundaries may bematched. Since all compartments are a combination of patches from theframework structure, any compartment can be quickly scanned for commonstructural boundaries. This provides a near instant filtering methodeven with thousands of compartments in complex frameworks. Inconventional applications, all compartments are generated with a randomcolor and names that represent a string amalgamation of all thestructural boundaries surrounding the compartment that can change eachmodel build or new session load. The method 2100, however, provides theability to set custom names and properties such as color or lithology,and provides that compartments return with the same properties each timethe model is loaded to a new session.

In step 2102, the group of cached bodies from step 214, step 218 and/orstep 224 is loaded.

In step 2103, the method 2100 determines if there is a table ofproperties for different compartments. If there is no table ofproperties for different compartments, then the method 2100 proceeds tostep 2117. Otherwise, the method 2100 proceeds to step 2104.

In step 2104, a table of properties for different compartments isloaded. The table includes user specified properties like color, name orlithology and inherent properties like patches, center of mass andvolume for each compartment. In FIG. 1, a graphical user interface 100illustrates various different compartments (stratigraphic layer, faultblock, fluid layer, combined), user specified properties and inherentproperties in an exemplary table.

In step 2108, the method 2100 determines if one or more properties inthe table from step 2104 match a cached body from a group of cachedbodies loaded in step 2102. If one or more properties in the table fromstep 2104 do not match a cached body from a group of cached bodiesloaded in step 2102, them the method 2100 proceeds to step 2112.Otherwise, the method 2100 proceeds to step 2109. A match is determinedby comparing the inherent properties (e.g. patches, center of mass,volume) in the table and the inherent properties of each cached bodyfrom a group of cached bodies loaded in step 2102 for identical values(i.e. an exact match).

In step 2109, the one or more properties in the table from step 2104that match (i.e. have identical inherent properties) a respective bodyin a group of cached bodies loaded in step 2102 are associated with therespective body.

In step 2110, the method 2100 determines if there are any remainingcached bodies from a group of cached bodies loaded in step 2102 that donot match one or more properties in the table from step 2104. If thereare cached bodies from a group of cached bodies loaded in step 2102 thatdo not match one or more properties in the table from step 2104, thenthe method 2100 proceeds to step 2112. Otherwise, the method 2100proceeds to step 2118. A match is determined by comparing the inherentproperties (e.g. patches, center of mass, volume) in the table and theinherent properties of each cached body from a group of cached bodiesloaded in step 2102 for identical values (i.e. an exact match).

In step 2112, the method 2100 determines if one or more properties inthe table form step 2104 relate to any remaining cached bodies from agroup of cached bodies loaded in step 2102. If one or more properties inthe table form step 2104 do not relate to any remaining cached bodiesfrom a group of cached bodies loaded in step 2102, then the method 2100proceeds to step 2116. Otherwise, the method 2100 proceeds to step 2113.One or more properties in the table from step 2104 relate to arespective cached body from a group of cached bodies loaded in step 2102if the inherent properties (e.g. patches, center of mass, volume) in thetable and the inherent properties of a respective cached body havecorresponding values within a predefined tolerance.

In step 2113, the one or more properties in the table from step 2104that relate to a respective body in a group of cached bodies loaded instep 2102 are associated with the respective body.

In step 2114, the method 2100 determines if there are any remainingcached bodies from a group of cached bodies loaded in step 2102 that donot relate to one or more properties in the table from step 2104. Ifthere are cached bodies from a group of cached bodies loaded in step2102 that do not relate to one or more properties in the table from step2104, then the method proceeds to step 2116. Otherwise, the method 2100proceeds to step 2118.

In step 2116, default properties are created in the table from step 2104for the remaining cached bodies from a group of cached bodies loaded instep 2102 that do not relate to one or more properties in the table fromstep 2104. The method 2100 then proceeds to step 2118.

In step 2117, a table is created for different compartments with defaultproperties for each cached body in a group of cached bodies loaded instep 2102. The default properties include user specified properties likecolor, name or lithology and inherent properties like patches, center ofmass and volume for each compartment.

In step 2118, a compartment is created for each row of properties in thetable from step 2104 or step 2117, wherein each row of propertiesrepresents one or more continuous bodies. Each compartment is returnedto step 238 in FIG. 2.

Custom Reservoir Generation

Referring now to FIGS. 23A-23B, a flow diagram of one embodiment of amethod 2300 for implementing step 240 in FIG. 2 is illustrated. Themethod 2300 performs custom reservoir generation on each compartmentfrom step 238 to generate one or more combined compartments. Since eachcompartment is composed of patches, those patches can be reassembledinto new compartments on the fly. By analyzing the interior of boundingpatches, connected compartments may be either grouped or isolated. Oncea new set of sealed patches is assembled, the interior seams will beremoved. The final result is a merge or intersection between any set ofcompartments, which forms a combined compartment. All volumes andproperties will honor the new bounding edges. In conventionalapplications, all compartments are isolated as individual bodies thatare manually assembled into meaningful geological units. The method2300, however, automatically generates most standard geological units.This automatic generation provides an advantage, even in thosesituations where a subset or merging of these units may be more useful.

In step 2302, each compartment from step 238 is loaded.

In step 2304, two or more compartments loaded in step 2302 are selected.

In step 2306, a combination type from the group of union, intersectsome, intersect all is selected. A union is the combination of allselected compartments. Intersect some is the combination of the sectionof each selected compartment that intersects another selectedcompartment. Intersect all is the combination of only the section ofeach selected compartment that intersects each of the other selectedcompartments. In FIG. 22, a Venn Diagram illustrates the variouscombinations from the group of union (2202), intersect some (2204) andintersect all (2206).

In step 2308, the method 2300 determines if the combination typeselected in step 2306 is union using the client interface and/or thevideo interface described in reference to FIG. 25. If the combinationtype selected in step 2306 is not a union, then the method 2300 proceedsto step 2312. Otherwise, the method 2300 proceeds to step 2310.

In step 2310, the compartments selected in step 2304 are combined into acombined compartment that is returned to step 240 in FIG. 2.

In step 2312, the method 2300 determines if the combination typeselected in step 2306 is intersect some using the client interfaceand/or the video interface described in reference to FIG. 25. If thecombination type selected in step 2306 is not intersect some, then themethod 2300 proceeds to step 2316. Otherwise, the method 2300 proceedsto step 2314.

In step 2314, each section of each compartment selected in step 2304that intersects another compartment selected in step 2304 is combinedinto a combined compartment that is returned to step 240 in FIG. 2.Unlike the example in FIG. 22, multiple intersections may benon-contiguous depending on the position of the selected compartments.

In step 2316, only the section of each compartment selected in step 2304that intersects each of the other compartments selected in step 2304 iscombined into a combined compartment that is returned to step 240 inFIG. 2.

Dynamic Interactions

Referring now to FIG. 24, a flow diagram of one embodiment of a method2400 for implementing step 244 in FIG. 2 is illustrated. The method 2400performs one or more dynamic interactions on the current data loaded instep 202, the predefined polygon AOI and the predefined minimum/maximumdepths from the VOI based model sealing performed in step 208 and/or thefluid contact flag and the sealing state from the fluid fill analysisperformed in step 224 to dynamically update the compartments from step238 and/or the combined compartments from step 240. Compartments areautomatically synchronized with updates and there is no need to redetectcompartments after framework changes. Since the compartments can nowincrementally update, performance is improved. Even disablingcompartments will keep the state preserved so enabling compartments willstill only need an incremental update. As a result, compartments may beactive more frequently and more analysis tools may be used. Inconventional applications, compartments are often required to bemanually redetected any time they updated the model, changed properties,or grouped compartments. In addition, visibility states are oftenrequired to be constantly toggled to parse names and figure out whichcompartment is needed. The method 2400, however, enables all aspects ofdynamic updatability for compartments. In other words, sealed geologicalunits are always visible that update with each change to the model.There is no additional interaction required and the compartments can beused for quality control and better comprehend the complex,three-dimensional structure of a geological model.

In step 2402, each compartment from step 238 and each combinedcompartment from step 240 is loaded.

In step 2404, the method 2400 determines if the there is any morecurrent data than the current data loaded in step 202. If the there ismore current data than the current data loaded in step 202, then themethod 2400 returns to step 202 to load the more current data.Otherwise, the method 2400 proceeds to step 2406.

In step 2406, the method 2400 determines if the predefined polygon AOIreferred to in step 402 or the predefined minimum/maximum depthsreferred to in step 408 have changed. If the predefined polygon AOIreferred to in step 402 or the predefined minimum/maximum depthsreferred to in step 408 have changed, then the method 2400 returns tostep 406 to set the polygon AOI using a new predefined polygon AOI orstep 412 to set the minimum/maximum depths using new predefinedminimum/maximum depths. Otherwise, the method 2400 proceeds to step2408.

In step 2408, the method 2400 determines if the fluid contact flagreferred to in step 2012 or the sealing state referred to in step 2034have changed. If the fluid contact flag referred to in step 2012 or thesealing state referred to in step 2034 have changed, then the method2400 returns to step 2010 to select a fluid contact flag using a newfluid contact flag or step 2034 to determine if there is a shared patchusing a new sealing state. Otherwise, the method 2400 returns to step2404.

System Description

The present disclosure may be implemented through a computer-executableprogram of instructions, such as program modules, generally referred toas software applications or application programs executed by a computer.The software may include, for example, routines, programs, objects,components, data structures, etc., that perform particular tasks orimplement particular abstract data types. The software forms aninterface to allow a computer to react according to a source of input.DecisionSpace® Geosciences, which is a commercial software applicationmarketed by Landmark Graphics Corporation, may be used as an interfaceapplication to implement the present disclosure. The software may alsocooperate with other code segments to initiate a variety of tasks inresponse to data received in conjunction with the source of the receiveddata. Other code segments may provide optimization components including,but not limited to, neural networks, earth modeling, history-matching,optimization, visualization, data management, reservoir simulation andeconomics. The software may be stored and/or carried on any variety ofmemory such as CD-ROM, magnetic disk, bubble memory and semiconductormemory (e.g., various types of RAM or ROM). Furthermore, the softwareand its results may be transmitted over a variety of carrier media suchas optical fiber, metallic wire, and/or through any of a variety ofnetworks, such as the Internet.

Moreover, those skilled in the art will appreciate that the disclosuremay be practiced with a variety of computer-system configurations,including hand-held devices, multiprocessor systems,microprocessor-based or programmable-consumer electronics,minicomputers, mainframe computers, and the like. Any number ofcomputer-systems and computer networks are acceptable for use with thepresent disclosure. The disclosure may be practiced indistributed-computing environments where tasks are performed byremote-processing devices that are linked through a communicationsnetwork. In a distributed-computing environment, program modules may belocated in both local and remote computer-storage media including memorystorage devices. The present disclosure may therefore, be implemented inconnection with various hardware, software or a combination thereof, ina computer system or other processing system.

Referring now to FIG. 25, a block diagram illustrates one embodiment ofa system for implementing the present disclosure on a computer. Thesystem includes a computing unit, sometimes referred to as a computingsystem, which contains memory, application programs, a client interface,a video interface, and a processing unit. The computing unit is only oneexample of a suitable computing environment and is not intended tosuggest any limitation as to the scope of use or functionality of thedisclosure.

The memory primarily stores the application programs, which may also bedescribed as program modules containing computer-executableinstructions, executed by the computing unit for implementing thepresent disclosure described herein and illustrated in FIGS. 1-24. Thememory therefore, includes a compartment geogrouping module, whichenables steps 204, 206, 210-240 and 244 in FIG. 2. The componentgeogrouping module may integrate functionality from the remainingapplication programs illustrated in FIG. 25. In particular,DecisionSpace® Geosciences may be used as an interface application toperform step 242 in FIG. 2 and a 3D modeling engine may be used toperform step 208 in FIG. 2. Step 202 in FIG. 2 may be performed usingthe 3D modeling engine and a database. Although DecisionSpace®Geosciences may be used as an interface application, other interfaceapplications may be used, instead, or the compartment geogrouping modulemay be used as a stand-alone application.

Although the computing unit is shown as having a generalized memory, thecomputing unit typically includes a variety of computer readable media.By way of example, and not limitation, computer readable media maycomprise computer storage media and communication media. The computingsystem memory may include computer storage media in the form of volatileand/or nonvolatile memory such as a read only memory (ROM) and randomaccess memory (RAM). A basic input/output system (BIOS), containing thebasic routines that help to transfer information between elements withinthe computing unit, such as during start-up, is typically stored in ROM.The RAM typically contains data and/or program modules that areimmediately accessible to and/or presently being operated on by theprocessing unit. By way of example, and not limitation, the computingunit includes an operating system, application programs, other programmodules, and program data.

The components shown in the memory may also be included in otherremovable/non-removable, volatile/nonvolatile computer storage media orthey may be implemented in the computing unit through an applicationprogram interface (“API”) or cloud computing, which may reside on aseparate computing unit connected through a computer system or network.For example only, a hard disk drive may read from or write tonon-removable, nonvolatile magnetic media, a magnetic disk drive mayread from or write to a removable, nonvolatile magnetic disk, and anoptical disk drive may read from or write to a removable, nonvolatileoptical disk such as a CD ROM or other optical media. Otherremovable/non-removable, volatile/nonvolatile computer storage mediathat can be used in the exemplary operating environment may include, butare not limited to, magnetic tape cassettes, flash memory cards, digitalversatile disks, digital video tape, solid state RAM, solid state ROM,and the like. The drives and their associated computer storage mediadiscussed above provide storage of computer readable instructions, datastructures, program modules and other data for the computing unit.

A client may enter commands and information into the computing unitthrough the client interface, which may be input devices such as akeyboard and pointing device, commonly referred to as a mouse, trackballor touch pad. Input devices may include a microphone, joystick,satellite dish, scanner, voice recognition or gesture recognition, orthe like. These and other input devices are often connected to theprocessing unit through the client interface that is coupled to a systembus, but may be connected by other interface and bus structures, such asa parallel port or a universal serial bus (USB).

A monitor or other type of display device may be connected to the systembus via an interface, such as a video interface. A graphical userinterface (“GUI”) may also be used with the video interface to receiveinstructions from the client interface and transmit instructions to theprocessing unit. In addition to the monitor, computers may also includeother peripheral output devices such as speakers and printer, which maybe connected through an output peripheral interface.

Although many other internal components of the computing unit are notshown, those of ordinary skill in the art will appreciate that suchcomponents and their interconnection are well known.

While the present disclosure has been described in connection withpresently preferred embodiments, it will be understood by those skilledin the art that it is not intended to limit the disclosure to thoseembodiments. It is therefore, contemplated that various alternativeembodiments and modifications may be made to the disclosed embodimentswithout departing from the spirit and scope of the disclosure defined bythe appended claims and equivalents thereof.

1. A method for identifying and extracting fault blocks in one or morebodies representing a geological structure, which comprises: a) loadinga plurality of bodies, wherein each body includes a side patch, a centerof mass and a volume; b) assigning a fault flag to each respective body,wherein each fault flag is designated as empty; c) selecting a faultflag that is assigned to one of the plurality of bodies with a sidepatch that is a fault; d) converting the selected fault flag from emptyto a fault representing a fault-flagged body; e) selecting each one ofthe plurality of bodies that is below the fault-flagged body; f)identifying each body selected below the fault-flagged body that is acontinuation of the fault-flagged body using a computer processor; g)repeating steps c)-f) for each fault flag assigned to one of theplurality of bodies with a side patch that is a fault; and h) separatingeach fault-flagged body and each body identified as a respectivecontinuation of the fault-flagged body from the plurality of bodies intoa group of bodies.
 2. The method of claim 1, wherein each body in eachseparated group of bodies represents at least a portion of a faultblock.
 3. The method of claim 1, wherein each body below thefault-flagged body that is a continuation of a fault-flagged bodyincludes a side patch that is not a fault.
 4. The method of claim 2,wherein each body below the fault-flagged body that is a continuation ofa fault-flagged body represents a continuation of the fault representedby the fault-flagged body.
 5. The method of claim 1, wherein eachseparated group of bodies excludes internal boundaries.
 6. The method ofclaim 1, wherein each separated group of bodies excludes non-sealingedges.
 7. The method of claim 1, further comprising using each group ofbodies to extract one or more fluid reservoirs.
 8. A non-transitoryprogram carrier device tangibly carrying computer-executableinstructions for identifying and extracting fault blocks in one or morebodies representing a geological structure, the instructions beingexecutable to implement: a) loading a plurality of bodies, wherein eachbody includes a side patch, a center of mass and a volume; b) assigninga fault flag to each respective body, wherein each fault flag isdesignated as empty; c) selecting a fault flag that is assigned to oneof the plurality of bodies with a side patch that is a fault; d)converting the selected fault flag from empty to a fault representing afault-flagged body; e) selecting each one of the plurality of bodiesthat is below the fault-flagged body; f) identifying each body selectedbelow the fault-flagged body that is a continuation of the fault-flaggedbody; g) repeating steps c)-f) for each fault flag assigned to one ofthe plurality of bodies with a side patch that is a fault; and h)separating each fault-flagged body and each body identified as arespective continuation of the fault-flagged body from the plurality ofbodies into a group of bodies.
 9. The program carrier device of claim 8,wherein each body in each separated group of bodies represents at leasta portion of a fault block.
 10. The program carrier device of claim 8,wherein each body below the fault-flagged body that is a continuation ofa fault-flagged body includes a side patch that is not a fault.
 11. Theprogram carrier device of claim 9, wherein each body below thefault-flagged body that is a continuation of a fault-flagged bodyrepresents a continuation of the fault represented by the fault-flaggedbody.
 12. The program carrier device of claim 8, wherein each separatedgroup of bodies excludes internal boundaries.
 13. The program carrierdevice of claim 8, wherein each separated group of bodies excludesnon-sealing edges.
 14. The program carrier device of claim 8, furthercomprising using each group of bodies to extract one or more fluidreservoirs.
 15. A non-transitory program carrier device tangiblycarrying computer-executable instructions for identifying and extractingfault blocks in one or more bodies representing a geological structure,the instructions being executable to implement: a) loading a pluralityof bodies, wherein each body includes a side patch; b) assigning a faultflag to each respective body, wherein each fault flag is designated asempty; c) selecting a fault flag that is assigned to one of theplurality of bodies with a side patch that is a fault; d) converting theselected fault flag from empty to a fault representing a fault-flaggedbody; e) selecting each one of the plurality of bodies that is below thefault-flagged body; f) identifying each body selected below thefault-flagged body that is a continuation of the fault-flagged body; g)repeating steps c)-f) for each fault flag assigned to one of theplurality of bodies with a side patch that is a fault; and h) separatingeach fault-flagged body and each body identified as a respectivecontinuation of the fault-flagged body from the plurality of bodies intoa group of bodies, wherein each body in each separated group of bodiesrepresents at least a portion of a fault block.
 16. The program carrierdevice of claim 15, wherein each body below the fault-flagged body thatis a continuation of a fault-flagged body includes a side patch that isnot a fault.
 17. The program carrier device of claim 15, wherein eachbody below the fault-flagged body that is a continuation of afault-flagged body represents a continuation of the fault represented bythe fault-flagged body.
 18. The program carrier device of claim 15,wherein each separated group of bodies excludes internal boundaries. 19.The program carrier device of claim 15, wherein each separated group ofbodies excludes non-sealing edges.
 20. The program carrier device ofclaim 15, further comprising using each group of bodies to extract oneor more fluid reservoirs.